using System;
using System.Collections.Generic;
using System.Text;
using EntidadesTO;
using LogicaNegocio;
using System.Transactions;

namespace Controladoras
{
    public class OrdenanzaMunicipalMantenedor
    {
        private static OrdenanzaMunicipalMantenedor instancia;
        private List<OrdenanzaMunicipalTO> listaOrdenanza;
        private OrdenanzaMunicipalBL ordenanzaBL;

        public static OrdenanzaMunicipalMantenedor ObtenerInstancia()
        {
            if (instancia == null)
            {
                instancia = new OrdenanzaMunicipalMantenedor();
            }
            return instancia;
        }

        //Constructor de la clase
        private OrdenanzaMunicipalMantenedor()
        {
            listaOrdenanza = new List<OrdenanzaMunicipalTO>();
            ordenanzaBL = new OrdenanzaMunicipalBL();
        }

        public void CargarListaConFiltro(int pNumOrdenanza, DateTime pFechaIni, DateTime pFechaFin, int pEstado)
        {
            listaOrdenanza = ordenanzaBL.ListarPorFiltro(pNumOrdenanza, pFechaIni, pFechaFin, pEstado);
        }

        //Devolver la lista de documentos legales
        public List<OrdenanzaMunicipalTO> ListaOrdenanza
        {
            get
            {
                return this.listaOrdenanza;
            }
        }


        public void ActualizarEstadoOrdenanza(OrdenanzaMunicipalTO pOrdenanza, int pCodUsuario)
        {
            try
            {
                using (TransactionScope contexto = new TransactionScope())
                {
                    this.ordenanzaBL.Modificar(pOrdenanza);
                    contexto.Complete();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
